package request

import (
	"lsgfish/server/internal/dto/common"
)

// UserPaginationParams 用户分页请求参数结构体
// @Description 用户分页查询的参数结构
type UserPaginationParams struct {
	// 用户账号
	Account string `json:"account" form:"account" gorm:"size:50;comment:账号" example:"user123"`
	// 用户昵称
	NickName string `json:"nickName" form:"nickName" gorm:"size:20;comment:用户昵称" example:"张三"`
	// 用户头像URL
	Avator string `json:"avator" form:"avator" gorm:"size:500;comment:用户头像" example:"https://example.com/avatar.jpg"`
	// 用户年龄
	Age int16 `json:"age" form:"age" gorm:"comment:年龄" example:"25"`
	// 用户专属邀请码
	InviteCode string `json:"inviteCode" form:"inviteCode" gorm:"size:50;comment:用户自己的邀请码" example:"INVITE123"`
	// 最近登录时间，Unix时间戳
	LoginTime int32 `json:"loginTime" form:"loginTime" gorm:"comment:登录时间" example:"1617235200"`
	common.PaginationParams
}

// PasswordRequest 修改密码请求参数
// @Description 用于修改用户密码的请求结构
type PasswordRequest struct {
	// 新密码，长度6-18位
	Password string `json:"password" binding:"required,min=6,max=18" msg:"密码长度必须在6-18位之间" example:"Password123"`
}

// UserEditRequest 用户编辑请求参数
// @Description 用于编辑用户信息的请求结构
type UserEditRequest struct {
	// 要编辑的用户ID
	ID int `json:"id" binding:"required" msg:"用户ID不能为空" example:"1"`
}

// UserDeleteRequest 用户删除请求参数
// @Description 用于删除用户的请求结构
type UserDeleteRequest struct {
	// 要删除的用户ID
	ID int `json:"id" binding:"required" msg:"用户ID不能为空" example:"1"`
}
